package com.novanok.googledocxlstest.entidad;

import com.novanok.googledocxlstest.dao.DAODrive;
import com.novanok.googledocxlstest.entidad.estado.EstadoEliminado;
import com.novanok.googledocxlstest.entidad.estadosync.EstadoSincronizacionNoSincronizado;

public class ConsumidorNube extends Thread {

    private static final int TIEMPO = 1000;
    private Monitor monitor;
    private boolean procesa;

    public ConsumidorNube( Monitor monitor ){
        this.setProcesa( true );
        this.monitor = monitor;
        this.start();
    }

    @Override
    public void run(){
        while ( this.isProcesa() ){
            try {
                Cliente c = this.monitor.getClienteANube();

                if ( c != null ){
                    DAODrive dao = new DAODrive();

                    if (! ( c.getEstado() instanceof EstadoEliminado ) ) {
                        if ( c.getEstadoNube() instanceof EstadoSincronizacionNoSincronizado )
                            dao.persistir( c );
                    } else {
                        dao.eliminar( c );
                    }
                }

                Thread.sleep( TIEMPO );
            } catch ( InterruptedException e ) {
                e.printStackTrace();
            }
        }
    }

    public boolean isProcesa() {
        return procesa;
    }

    public void setProcesa(boolean procesa) {
        this.procesa = procesa;
    }
}
